Repository navigation
docs: catalog guard authorizes renames and commits by their tables (platform #758) - #44
Merged
Merged
Conversation
…latform #758) Document what a Catalog Client's grants must cover for a rename, a single- and multi-table commit, a recursive namespace drop and remote signing; case-insensitive grant matching; Iceberg JSON refusals and the 413 body caps. Add an upgrade note and KI-311 to KI-314. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Platform docs for egret-data/platform#758 (merge
1e0a3cf8, "authorize renames and commits by the tables they change"). egret's Iceberg catalog guard now reads the body of a rename and a commit and decides on the tables they actually change. It also requires a catalog-level grant for a recursive namespace drop, refuses remote S3 signing, and matches grant names case-insensitively, the way the catalog resolves them. This PR documents what each operation needs from a Catalog Client's grants, the refusals (Iceberg JSON, 403/400/413), and an upgrade note. It also fixes the text that said the mount exposes no signer endpoint, and adds KI-311 to KI-314. No row described these holes, so none is closed.Changes
control-plane/catalogs/catalog-detail.md): a new subsection under Roles & grants, What each operation needs (#what-each-operation-needs):identifierif present, otherwise the path's table; a view commit by its path), multi-table commit (every table; one miss refuses the whole commit), rename (source as a drop, destination as a create; a table grant on the destination name is not enough), drop, recursive namespace drop (catalog-level write or manage), remote signing (403 whatever the grants);catalog · manage) does all of these;main.rsandmount.rsat1e0a3cf8.…/aws/s3/signrequest with 403. The setup step links to the new subsection for what needs more than a table grant./configuri without the port (KI-314)./configadvertises its uri without the port, which breaks PyIceberg. Cause not confirmed.openapi.jsonwithscripts/gen-api-reference.mjs. No diff (#758 has no API shape change), so nothing is committed.Screenshots
None changed: #758 has no UI change. No re-shoot.
Notes
/configrow and page note describe what the live check measured on the demo edge (nginx sendsX-Forwarded-Host $host). Whether other proxies cause it is not verified.crates/egret-bin/src/main.rs) and the mount (crates/egret-catalog-engine/src/mount.rs) at1e0a3cf8, the spec (D1–D14), and the live-check report.i18n/vimirror.npm run typecheckandnpm run buildpass locally (en and vi locales; no broken links or anchors reported).Checklist
1e0a3cf8npm run typecheckandnpm run buildpass🤖 Generated with Claude Code